package com.xdf.whiteaccount.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 版本号：20240401
 * 由 chanchaw 创建于 2025-4-14 13:58:55，实现功能如下：
 * 1. 实现接口 Serializable
 * 2. 无参构造函数
 * 3. 建造者模式
 * 4. getter,setter,toString()
 * 色布发货单
 */
public class CpBillfhMain implements Serializable {
    public CpBillfhMain() {}
    private static final long serialVersionUID = 1L;

    private Integer id;//发货主表主键（色布发货）
    private Integer planid;//计划单主键
    private String billcode;//单据编号
    private String client;//客户
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private java.util.Date datafh;//发货时间
    private BigDecimal accountPrice;//对账单价
    private BigDecimal price;//单价
    private Integer upload;//是否上传 (1：已上传)
    private String memo;//发货备注
    private String manager;//经手人
    private String carnumber;//车牌号
    private Boolean isPush;//是否已经推送(0：未推送；1：已推送；)
    private Integer printheader;//代发客户打印发货单抬头名称
    private String signstr;//
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private java.util.Date createTime;//创建时间，DB自动填充
    private Integer state;//状态，1有效，0作废
    private String address;//收货地址
    private Integer hideClient;//1隐藏客户，0不隐藏
    private Integer showPrice;//1显示单价，0不显示
    private String remark;//厂内备注

    public Integer getId(){return this.id;}
    public void setId(Integer id){this.id = id;}
    public Integer getPlanid(){return this.planid;}
    public void setPlanid(Integer planid){this.planid = planid;}
    public String getBillcode(){return this.billcode;}
    public void setBillcode(String billcode){this.billcode = billcode;}
    public String getClient(){return this.client;}
    public void setClient(String client){this.client = client;}
    public java.util.Date getDatafh(){return this.datafh;}
    public void setDatafh(java.util.Date datafh){this.datafh = datafh;}
    public BigDecimal getAccountPrice(){return this.accountPrice;}
    public void setAccountPrice(BigDecimal accountPrice){this.accountPrice = accountPrice;}
    public BigDecimal getPrice(){return this.price;}
    public void setPrice(BigDecimal price){this.price = price;}
    public Integer getUpload(){return this.upload;}
    public void setUpload(Integer upload){this.upload = upload;}
    public String getMemo(){return this.memo;}
    public void setMemo(String memo){this.memo = memo;}
    public String getManager(){return this.manager;}
    public void setManager(String manager){this.manager = manager;}
    public String getCarnumber(){return this.carnumber;}
    public void setCarnumber(String carnumber){this.carnumber = carnumber;}
    public Boolean getIsPush(){return this.isPush;}
    public void setIsPush(Boolean isPush){this.isPush = isPush;}
    public Integer getPrintheader(){return this.printheader;}
    public void setPrintheader(Integer printheader){this.printheader = printheader;}
    public String getSignstr(){return this.signstr;}
    public void setSignstr(String signstr){this.signstr = signstr;}
    public java.util.Date getCreateTime(){return this.createTime;}
    public void setCreateTime(java.util.Date createTime){this.createTime = createTime;}
    public Integer getState(){return this.state;}
    public void setState(Integer state){this.state = state;}
    public String getAddress(){return this.address;}
    public void setAddress(String address){this.address = address;}
    public Integer getHideClient(){return this.hideClient;}
    public void setHideClient(Integer hideClient){this.hideClient = hideClient;}
    public Integer getShowPrice(){return this.showPrice;}
    public void setShowPrice(Integer showPrice){this.showPrice = showPrice;}
    public String getRemark(){return this.remark;}
    public void setRemark(String remark){this.remark = remark;}


    @Override
    public String toString() {
        return "CpBillfhMain{" +
        ",id='" + id + '\'' +
        ",planid='" + planid + '\'' +
        ",billcode='" + billcode + '\'' +
        ",client='" + client + '\'' +
        ",datafh='" + datafh + '\'' +
        ",accountPrice='" + accountPrice + '\'' +
        ",price='" + price + '\'' +
        ",upload='" + upload + '\'' +
        ",memo='" + memo + '\'' +
        ",manager='" + manager + '\'' +
        ",carnumber='" + carnumber + '\'' +
        ",isPush='" + isPush + '\'' +
        ",printheader='" + printheader + '\'' +
        ",signstr='" + signstr + '\'' +
        ",createTime='" + createTime + '\'' +
        ",state='" + state + '\'' +
        ",address='" + address + '\'' +
        ",hideClient='" + hideClient + '\'' +
        ",showPrice='" + showPrice + '\'' +
        ",remark='" + remark + '\'' +
        '}';
    }

    public static class Builder{
        private Integer id;
        private Integer planid;
        private String billcode;
        private String client;
        private java.util.Date datafh;
        private BigDecimal accountPrice;
        private BigDecimal price;
        private Integer upload;
        private String memo;
        private String manager;
        private String carnumber;
        private Boolean isPush;
        private Integer printheader;
        private String signstr;
        private java.util.Date createTime;
        private Integer state;
        private String address;
        private Integer hideClient;
        private Integer showPrice;
        private String remark;

        public Builder id(Integer id){this.id = id;return this;}
        public Builder planid(Integer planid){this.planid = planid;return this;}
        public Builder billcode(String billcode){this.billcode = billcode;return this;}
        public Builder client(String client){this.client = client;return this;}
        public Builder datafh(java.util.Date datafh){this.datafh = datafh;return this;}
        public Builder accountPrice(BigDecimal accountPrice){this.accountPrice = accountPrice;return this;}
        public Builder price(BigDecimal price){this.price = price;return this;}
        public Builder upload(Integer upload){this.upload = upload;return this;}
        public Builder memo(String memo){this.memo = memo;return this;}
        public Builder manager(String manager){this.manager = manager;return this;}
        public Builder carnumber(String carnumber){this.carnumber = carnumber;return this;}
        public Builder isPush(Boolean isPush){this.isPush = isPush;return this;}
        public Builder printheader(Integer printheader){this.printheader = printheader;return this;}
        public Builder signstr(String signstr){this.signstr = signstr;return this;}
        public Builder createTime(java.util.Date createTime){this.createTime = createTime;return this;}
        public Builder state(Integer state){this.state = state;return this;}
        public Builder address(String address){this.address = address;return this;}
        public Builder hideClient(Integer hideClient){this.hideClient = hideClient;return this;}
        public Builder showPrice(Integer showPrice){this.showPrice = showPrice;return this;}
        public Builder remark(String remark){this.remark = remark;return this;}
        public CpBillfhMain build(){
            return new CpBillfhMain(this);
        }
    }

    public static Builder builder(){return new Builder();}
    public CpBillfhMain(Builder builder){
        this.id = builder.id;
        this.planid = builder.planid;
        this.billcode = builder.billcode;
        this.client = builder.client;
        this.datafh = builder.datafh;
        this.accountPrice = builder.accountPrice;
        this.price = builder.price;
        this.upload = builder.upload;
        this.memo = builder.memo;
        this.manager = builder.manager;
        this.carnumber = builder.carnumber;
        this.isPush = builder.isPush;
        this.printheader = builder.printheader;
        this.signstr = builder.signstr;
        this.createTime = builder.createTime;
        this.state = builder.state;
        this.address = builder.address;
        this.hideClient = builder.hideClient;
        this.showPrice = builder.showPrice;
        this.remark = builder.remark;
    }
    /**
     * 自定义代码请写在此处之后
     */
}
